Computer networks often face malicious attacks originating from public networks. Such attacks currently include pre-attack probes, worm propagation, network flooding attacks such as denial of service (DoS) and distributed DoS (DDOS) attacks, authorization attacks, and operating system and application scanning. In order to evade detection, attackers may utilize spoofed IP addresses.
Attackers often mount pre-attack probes as reconnaissance prior to attempting an attack. Using such probes, the attacker typically attempts to map the structure of the target network, probe firewall access-list policies, determine server operating systems, and/or uncover running services, applications, remote connections, and maintenance backdoors.
Worms are self-replicating programs that spread over public networks, typically by exploiting security flaws in common services. Some worms, such as Code Red and Nimba, utilize scanning mechanisms for finding vulnerable systems to infect. During an authorization attack, the attacker automatically and rapidly sends a large number of possible passwords to a server or application, in an attempt to determine the correct password.
DoS and DDOS attacks dispatch large numbers of network packets or application requests, in order to overwhelm victim bandwidth, network resources, and/or victim servers, resulting in denial of services to legitimate users. Examples of DoS/DDoS attacks include Internet Control Message Protocol (ICMP) flood attacks, User Datagram Protocol (UDP) flood attacks, and Transmission Control Protocol (TCP) SYN flood attacks. During an ICMP flood attack, the attacker attempts to saturate the victim network by sending a continuous stream of ICMP echo requests to one or more hosts on the network. The hosts respond with ICMP echo replies. The continuous requests and responses may overwhelm network bandwidth. During a UDP flood attack, the attacker attempts to saturate a random port of a host in a protected network with UDP packets. The host attempts to determine which application is listening on the port. When the host determines that no application is listening on the port, the host returns an ICMP packet to the forged IP address notifying the sender that the destination port is unreachable. As in an ICMP flood attack, the continuous requests and responses may overwhelm network bandwidth.
Some TCP SYN flood attacks are stateless, i.e., the attacker does not attempt to establish a connection with a particular host, but rather attempts to generally flood the victim network with SYN packets. Other SYN flood attacks are stateful. In these attacks, the attacker sends multiple SYN packets from one or more spoofed addresses to a victim host. The victim host responds to each SYN packet by sending a SYN/ACK packet to the spoofed address, and opens a SYN_RECVD state, which consumes host CPU resources. The attacker never responds with the expected ACK packet. As a result, the host's resources are consumed and unavailable for legitimate operations.
NAPTHA is a stateful DoS attack in which the attacker opens multiple connections with a victim host, and leaves the connections open indefinitely (or until the host times out the connections). To open each connection, the attacker participates in the normal three-way TCP handshake (SYN, SYN/ACK, ACK), resulting in an ESTABLISHED state on the victim host. NAPTHA also may attempt to block the victim host from closing the connections. To close a connection, the host sends a FIN packet to the attacker, and enters the FIN_WAIT-1 state. The attacker does not respond with the expected ACK packet, causing some hosts to remain in the FIN_WAIT-1 state, until the connection eventually times out.
Common systems used to protect networks at their peripheries include firewalls and intrusion detection systems (IDSs). Firewalls examine packets arriving at an entry to the network in order to determine whether or not to forward the packets to their destinations. Firewalls employ a number of screening methods to determine which packets are legitimate. IDSs typically provide a static signature database engine that includes a set of attack signature processing functions, each of which is configured to detect a specific intrusion type. Each attack signature is descriptive of a pattern which constitutes a known security violation. The IDS monitors network traffic by sequentially executing every processing function of a database engine for each data packet received over a network.
U.S. Pat. No. 6,487,666 to Shanklin et al., which is incorporated herein by reference, describes a method for describing intrusion signatures, which are used by an intrusion detection system to detect attacks on a local network. The signatures are described using a “high level” syntax having features in common with regular expression and logical expression methodology. These high level signatures may then be compiled, or otherwise analyzed, in order to provide a process executable by a sensor or other processor-based signature detector.
U.S. Pat. No. 6,279,113 to Vaidya, which is incorporated herein by reference, describes a signature-based dynamic network IDS, which includes attack signature profiles that are descriptive of characteristics of known network security violations. The attack signature profiles are organized into sets of attack signature profiles according to security requirements of network objects on a network. Each network object is assigned a set of attack signature profiles, which is stored in a signature profile memory together with association data indicative of which sets of attack signature profiles correspond to which network objects. A monitoring device monitors network traffic for data addressed to the network objects. Upon detecting a data packet addressed to one of the network objects, packet information is extracted from the data packet. The extracted information is utilized to obtain a set of attack signature profiles corresponding to the network object based on the association data. A virtual processor executes instructions associated with attack signature profiles to determine if the packet is associated with a known network security violation. An attack signature profile generator is utilized to generate additional attack signature profiles configured for processing by the virtual processor in the absence of any corresponding modification of the virtual processor.
U.S. Pat. No. 6,453,345 to Trcka et al., which is incorporated herein by reference, describes a network security and surveillance system that passively monitors and records the traffic present on a local area network, wide area network, or other type of computer network, without interrupting or otherwise interfering with the flow of the traffic. Raw data packets present on the network are continuously routed (with optional packet encryption) to a high-capacity data recorder to generate low-level recordings for archival purposes. The raw data packets are also optionally routed to one or more cyclic data recorders to generate temporary records that are used to automatically monitor the traffic in near-real-time. A set of analysis applications and other software routines allows authorized users to interactively analyze the low-level traffic recordings to evaluate network attacks, internal and external security breaches, network problems, and other types of network events.
U.S. Pat. No. 6,321,338 to Porras et al., which is incorporated herein by reference, describes a method for network surveillance, the method including receiving network packets handled by a network entity and building at least one long-term and a least one short-term statistical profile from a measure of the network packets that monitors data transfers, errors, or network connections. A comparison of the statistical profiles is used to determine whether the difference between the statistical profiles indicates suspicious network activity.
U.S. Pat. No. 5,991,881 to Conklin et al., which is incorporated herein by reference, describes techniques for network surveillance and detection of attempted intrusions, or intrusions, into the network and into computers connected to the network. The system performs: (a) intrusion detection monitoring, (b) real-time alert, (c) logging of potential unauthorized activity, and (d) incident progress analysis and reporting. Upon detection of any attempts to intrude, the system initiates a log of all activity between the computer elements involved, and sends an alert to a monitoring console. When a log is initiated, a primary surveillance system continues to monitor the network. The system also starts a secondary monitoring process, which interrogates the activity log in real-time and sends additional alerts reporting the progress of the suspected intruder.
US Patent Application Publications 2002/0107953 to Ontiveros et al. and 2002/0133586 to Shanklin et al., which are incorporated herein by reference, describe a method for protecting a network by monitoring both incoming and outgoing data traffic on multiple ports of the network, and preventing transmission of unauthorized data across the ports. The monitoring system is provided in a non-promiscuous mode and automatically denies access to data packets from a specific source based upon an associated rules table. All other packets from sources not violating the rules are allowed to use the same port. The system provides for dynamic writing and issuing of firewall rules by updating the rules table. Information regarding the data packets is captured, sorted and cataloged to determine attack profiles and unauthorized data packets.
US Patent Application Publication 2002/0083175 to Afek et al., which is incorporated herein by reference, describes techniques for protecting against and/or responding to an overload condition at a victim node in a distributed network. The techniques include diverting traffic otherwise destined for the victim node to one or more other nodes, which can filter the diverted traffic, passing a portion of the traffic to the victim node, and/or effect processing of one or more of the diverted packets on behalf of the victim.